home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / dev / misc / BST_SystemDocs.lha / BeastV1 / Include / BST_System / Beast.i < prev   
Encoding:
Text File  |  1996-03-30  |  8.3 KB  |  310 lines

  1. ;****h* Beast/BeastConstants ************************************************
  2. ;*
  3. ;*    NAME
  4. ;*      BeastConstants -- Constants definition for BEAST. (v0.1)
  5. ;*
  6. ;*    COPYRIGHT
  7. ;*      Maverick Software Development
  8. ;*
  9. ;*    FUNCTION
  10. ;*
  11. ;*    AUTHOR
  12. ;*      Jacco van Weert
  13. ;*
  14. ;*    CREATION DATE
  15. ;*      23-Apr-95
  16. ;*
  17. ;*    MODIFICATION HISTORY
  18. ;*
  19. ;*    NOTES
  20. ;*
  21. ;****************************************************************************
  22.  
  23.     IFND    UTILITY_TAGITEM_I
  24.     INCLUDE    "utility/tagitem.i"
  25.     ENDC
  26.     IFND    UTILITY_HOOKS_I
  27.     INCLUDE    "utility/hooks.i"
  28.     ENDC
  29.  
  30. ;****** BeastConstants/BSTC_Root ********************************************
  31. ;*
  32. ;*    NAME
  33. ;*      BSTC_Root -- Root class. (v0.1)
  34. ;*
  35. ;****************************************************************************
  36.             rsreset
  37. BSTC_Root:        rs.b    LN_SIZE
  38. BSTC_Size:        rs.l    1        ;* Size of the total Class.
  39. BSTC_InputPorts:    rs.b    MLH_SIZE
  40. BSTC_OutputPorts:    rs.b    MLH_SIZE
  41. BSTC_Methods:        rs.b    MLH_SIZE    ;* List of supported methods (CLSS_MLxx)
  42. BSTC_ObjectCount:    rs.l    1        ;* How many objects created of this class?
  43. BSTC_ExtClass:        rs.l    1        ;* Pointer to ExtClass library
  44. BSTC_UserData:        rs.l    1
  45. BSTC_RootSIZE:        rs.w    0
  46.  
  47. ;****** BeastConstants/CLSS_MethodList **************************************
  48. ;*
  49. ;*    NAME
  50. ;*      CLSS_MethodList -- List of methods. (v0.1)
  51. ;*
  52. ;****************************************************************************
  53.             rsreset
  54. CLSS_MethodList:    rs.b    MLN_SIZE
  55. CLSS_MLMethodID:    rs.l    1        ;* Method ID
  56. CLSS_MLHookList:    rs.b    MLH_SIZE    ;* List of method calls
  57. CLSS_MethodListSIZE:    rs.w    0
  58.  
  59.  
  60. ;****** BeastConstants/ML_Hook **********************************************
  61. ;*
  62. ;*    NAME
  63. ;*      ML_Hook -- Method hook. (v0.1)
  64. ;*
  65. ;****************************************************************************
  66.             rsreset
  67. ML_Hook:        rs.b    h_SIZEOF
  68. ML_HookSIZE:        rs.w    0
  69.  
  70. ;****** BeastConstants/BSTO_System ******************************************
  71. ;*
  72. ;*    NAME
  73. ;*      BSTO_System -- Standard Object. (v0.1)
  74. ;*
  75. ;****************************************************************************
  76.             rsreset
  77. OBJ_BSTObject:        rs.b    MLN_SIZE
  78. OBJ_DataSection:    rs.l    1        ;* Pointer to the data section (WILL NOT CHANGE)
  79. OBJ_InputList:        rs.b    MLH_SIZE    ;* Pointer a list of inputs
  80. OBJ_OutputList:        rs.b    MLH_SIZE    ;* Pointer a list of outputs
  81. OBJ_Class:        rs.l    1        ;* ^ObjectClass
  82. OBJ_Parent:        rs.l    1        ;* Parent-Object
  83. OBJ_Childs:        rs.b    MLH_SIZE    ;* Childs-Objects
  84. OBJ_Flags:        rs.l    1        ;* Object-Flags
  85. OBJ_SystemSIZE:        rs.w    0
  86.  
  87.     BITDEF    OBJ,Dispose,0            ;* The object must be disposed
  88.     BITDEF    OBJ,Skip,1            ;* This object will be skipped in the method calls
  89.     BITDEF    OBJ,SubClass,2            ;* Object is an integral part of another object.
  90.  
  91. ;****** BeastConstants/OBJ_InputOutput **************************************
  92. ;*
  93. ;*    NAME
  94. ;*      OBJ_InputOutput -- (v0.1)
  95. ;*
  96. ;****************************************************************************
  97.  
  98. ;    **********************************
  99. ;    **** OIL ObjectInputLink structure
  100.             rsreset
  101. OIL_Connection:        rs.b    MLN_SIZE    ;* OIL = Object Input Link
  102. OIL_Object:        rs.l    1        ;* Pointer to *this* object
  103. OIL_FromMethodOOL:    rs.l    1        ;* Pointer to the connected input OOL structure
  104. OIL_InputMethod:    rs.l    1        ;* The input method ID
  105. OIL_ConnectionSIZE:    rs.w    0
  106.  
  107. ;    ***********************************
  108. ;    **** OOL ObjectOutputLink structure
  109.             rsreset
  110. OOL_Connection:        rs.b    MLN_SIZE    ;* OOL = Object Output Link
  111. OOL_Object:        rs.l    1        ;* Pointer to *this* object
  112. OOL_ToMethodOIL:    rs.l    1        ;* Pointer to the connected output OIL structure
  113. OOL_OutputMethod:    rs.l    1        ;* The output method ID
  114. OOL_ConnectionSIZE:    rs.w    0
  115.  
  116.  
  117. ;    **********************************************
  118. ;    **** CIL ClassInputLink structure OBSOLETE!!!!
  119.             rsreset
  120. CIL_Input:        rs.b    MLN_SIZE
  121. CIL_InputMethod:    rs.l    1
  122. CIL_InputPortname:    rs.l    1
  123. CIL_InputSIZE:        rs.w    0
  124.  
  125. ;    ***********************************************
  126. ;    **** COL ClassOutputLink structure OBSOLETE!!!!
  127.             rsreset
  128. COL_Output:        rs.b    MLN_SIZE
  129. COL_OutputMethod:    rs.l    1
  130. COL_OutputPortname:    rs.l    1
  131. COL_OutputSIZE:        rs.w    0
  132.  
  133.  
  134.  
  135.  
  136. ;****** BeastConstants/BST_Base *********************************************
  137. ;*
  138. ;*    NAME
  139. ;*      BST_Base -- Base structure. (v0.1)
  140. ;*
  141. ;****************************************************************************
  142.             rsreset
  143. BST_Base:        rs.b    OBJ_SystemSIZE
  144. BST_DefinedClasses:    rs.b    MLH_SIZE
  145. BST_BaseSIZE:        rs.w    0
  146.  
  147. ;****** BeastConstants/BST_StandardMethods **********************************
  148. ;*
  149. ;*    NAME
  150. ;*      BST_StandardMethods -- Standard methods. (v0.1)
  151. ;*
  152. ;*    RESULT
  153. ;*
  154. ;****************************************************************************
  155.  
  156. OBM_bits_FUNCTION =$F0000000
  157. OBM_type_None      =$00000000
  158.  
  159. OBM_bits_FAMILY      =$0F000000
  160. OBM_type_Plain      =$00000000
  161. OBM_type_System      =$01000000
  162. OBM_type_General  =$02000000
  163. OBM_type_B52      =$03000000
  164. OBM_type_BeaVis      =$04000000
  165. OBM_type_BFS      =$05000000
  166. OBM_type_BeaMM      =$06000000
  167. OBM_type_BEASTAR  =$07000000
  168.  
  169.  
  170. ;    /**** Numbers   $0000040 - $000007f Free */
  171. OBM_local0    =$0000040
  172. ;    /**** Numbers   $0000100 - $00007ff Free */
  173. OBM_local1    =$0000100
  174. ;    /**** Numbers     $0004000 - $0004fff Free */
  175. OBM_local2    =$0004000
  176. ;    /**** Numbers   $0100000 - $01fffff Free */
  177. OBM_local3    =$0100000
  178.  
  179. OBM_INPUT       =$0000080
  180. OBM_OUTPUT      =$0000081
  181. OBM_INPUT2      =$0000082
  182. OBM_OUTPUT2     =$0000083
  183. OBM_INPUT3      =$0000084
  184. OBM_OUTPUT3     =$0000085
  185. OBM_INPUT4      =$0000086
  186. OBM_OUTPUT4     =$0000087
  187. OBM_SYSINPUT    =$0000088
  188. OBM_SYSOUTPUT   =$0000089
  189. OBM_IDCMPINPUT    =$000008A
  190. OBM_IDCMPOUTPUT    =$000008B
  191. OBM_BVSINPUT    =$000008C
  192. OBM_BVSOUTPUT    =$000008D
  193. OBM_BEAMMINPUT  =$000008E
  194. OBM_BEAMMOUTPUT    =$000008F
  195. OBM_BFSINPUT    =$0000090
  196. OBM_BFSOUTPUT    =$0000091
  197.  
  198. OBM_ALLOCMEM    =$0000100
  199. OBM_FREEMEM    =$0000101
  200. OBM_LOCKMEM    =$0000102
  201. OBM_UNLOCKMEM    =$0000103
  202.  
  203. OBM_GETATTR     =$0001000
  204. OBM_SETATTR     =$0001001
  205.  
  206. OBM_INIT        =$0040000
  207. OBM_DISPOSE     =$0040001
  208.  
  209. ;**********************************
  210. ;**** Beast General classes methods
  211. ;****
  212. OBM_GETEACH    =$0000000+OBM_type_System
  213. OBM_FOREACH    =$0000001+OBM_type_System
  214.  
  215.  
  216.  
  217. BST_bits_System        =$7F000000
  218. BST_TAG         =TAG_USER+$40000000
  219.  
  220.     BITDEF    BT,Ignore,29
  221.     BITDEF    BT,Attributes,28
  222.     BITDEF    BT,UserTag,27
  223.  
  224. BST_bits_Types        =$00F00000
  225. BTA_type_Plain        =$00000000
  226. BTA_type_CString    =$00100000
  227. BTA_type_Object        =$00200000
  228. BTA_type_Pointer    =$00300000
  229.  
  230. ;************
  231. ;**** Control
  232. ;****/
  233. BTA_CONTROL        =BST_TAG+BTF_Attributes+$000
  234. BTA_NumberOf        =BTA_CONTROL+$01
  235.  
  236. ;*************
  237. ;**** Position
  238. ;****/
  239. BTA_POSITION        =BST_TAG+BTF_Attributes+$100
  240. BTA_X            =BTA_POSITION+$00+BTA_type_Plain
  241. BTA_Y            =BTA_POSITION+$01+BTA_type_Plain
  242. BTA_Width        =BTA_POSITION+$02+BTA_type_Plain
  243. BTA_Height        =BTA_POSITION+$03+BTA_type_Plain
  244. BTA_Size        =BTA_POSITION+$04+BTA_type_Plain
  245.  
  246. ;**********
  247. ;**** Types
  248. ;****/
  249. BTA_TYPES        =BST_TAG+BTF_Attributes+$200
  250. BTA_LongNumber        =BTA_TYPES+$00
  251.  
  252. ;**********
  253. ;**** 
  254. BTA_IDENTIFIER        =BST_TAG+BTF_Attributes+$300
  255. BTA_Title        =BTA_IDENTIFIER+$00+BTA_type_CString
  256. BTA_MainObject        =BTA_IDENTIFIER+$01+BTA_type_Object
  257. BTA_Object1        =BTA_IDENTIFIER+$02+BTA_type_Object
  258. BTA_Object2        =BTA_IDENTIFIER+$03+BTA_type_Object
  259. BTA_Object3        =BTA_IDENTIFIER+$04+BTA_type_Object
  260. BTA_Object4        =BTA_IDENTIFIER+$05+BTA_type_Object
  261. BTA_Object5        =BTA_IDENTIFIER+$06+BTA_type_Object
  262. BTA_Object6        =BTA_IDENTIFIER+$07+BTA_type_Object
  263. BTA_Object7        =BTA_IDENTIFIER+$08+BTA_type_Object
  264. BTA_Object8        =BTA_IDENTIFIER+$09+BTA_type_Object
  265. BTA_Object9        =BTA_IDENTIFIER+$0A+BTA_type_Object
  266. BTA_Method        =BTA_IDENTIFIER+$0B+BTA_type_Plain
  267. BFS_UserName        =BTA_IDENTIFIER+$0C+BTA_type_CString
  268.  
  269. ;***********
  270. ;**** SYSTEM
  271. ;****
  272. BTA_SYSTEM        =BST_TAG+BTF_Attributes+$400
  273. BTA_MemBlock        =BTA_SYSTEM+$00+BTA_type_Pointer
  274. BTA_MemHandle        =BTA_SYSTEM+$01+BTA_type_Pointer
  275. BTA_MemFlags        =BTA_SYSTEM+$02+BTA_type_Plain
  276.     BITDEF    MEM,MOVEABLE,25
  277.     BITDEF    MEM,DISCARDABLE,26
  278.  
  279. ;**********************************************
  280. ;**** Method Flags for the OBJ_DoMethod routine
  281. ;****/
  282.     BITDEF    MTH,DOCHILDREN,0
  283.     BITDEF    MTH,DOPARENTS,1
  284.     BITDEF    MTH,DISPOSED,2        ;/* INTERNAL: Somewhere an object must be disposed */
  285.     BITDEF    MTH,EVENTDISPOSE,3     ;/* INTERNAL: MUST be used in combination with the MTHF_DISPOSED
  286.                     ;       flag, now *also* the eventobject will be disposed. */
  287.     BITDEF    MTH,PASSTOCHILD,4
  288.     BITDEF    MTH,ERROR,6
  289.     BITDEF    MTH,FATALERROR,7
  290.     BITDEF    MTH,BREAK,8
  291.  
  292. MTHF_B52_bits        =$0000F000    ;/* Methodflags used by B52 */
  293.  
  294.  
  295. ;****** BeastConstants/BST_macros *******************************************
  296. ;*
  297. ;*    NAME
  298. ;*      BST_macros -- (v0.1)
  299. ;*
  300. ;****************************************************************************
  301.  
  302. OBJ_m_DoMethod    MACRO    ; Object, MethodID, TagList, MethodFlags
  303.         moveq        #\4,d3
  304.         move.l        \1,a0
  305.         move.l        #\2,d0
  306.         move.l        \3,a1
  307.         CALLBEAST    OBJ_DoMethod
  308.         ENDM
  309.  
  310.